#ifndef _EEG_CONFIG_H
#define _EEG_CONFIG_H

#include "lib/ConfigLib/configfile.h"
#include "lib/ConfigLib/configitem.h"
#include "lib/ConfigLib/configmap.h"
#include "lib/ConfigLib/configvector.h"

#define ADD_MEMBER(type, name ) static configlib::configitem< type > name
class Config{
public:
	static configlib::configfile g_configFile;

	ADD_MEMBER(int, bmpHeight);
	ADD_MEMBER(int, bmpWidth);
	ADD_MEMBER(bool, bmpSizeCustomized);
//Defining variables in "Output" section

	ADD_MEMBER(bool,FRM_Amplitude);//Amplitude
    ADD_MEMBER(bool,FRM_EPosition);//Electrode Position
	ADD_MEMBER(bool,FRM_ENames);//Electrode Names
	ADD_MEMBER(bool,FRM_VALDisplay);//Value Display
	ADD_MEMBER(unsigned int,FRM_Interpolation);
	ADD_MEMBER(unsigned int,FRM_Resolution);
	ADD_MEMBER(DWORD,FRM_BGColor);//Background color;
	ADD_MEMBER(unsigned int,FRM_Gradation);//Color gradation
//Defining variables in "Frequency Map->View" section

	ADD_MEMBER(unsigned int,VTM_Interval);// Animational interval
    ADD_MEMBER(bool,VTM_EPosition);//Electrode Position
	ADD_MEMBER(bool,VTM_ENames);//Electrode Names
	ADD_MEMBER(bool,VTM_VALDisplay);//Value Display
	ADD_MEMBER(unsigned int,VTM_Interpolation);
	ADD_MEMBER(unsigned int,VTM_Resolution);
	ADD_MEMBER(DWORD,VTM_BGColor);//Background color;
	ADD_MEMBER(unsigned int,VTM_Gradation);//Color gradation
//Defining variables in "Voltage Map->View" section

	ADD_MEMBER(unsigned int,SPE_Amplitude);
	ADD_MEMBER(bool ,SPE_IsLog);
	ADD_MEMBER(int,SPE_Unit);
	ADD_MEMBER(bool,SPE_SPEDisplay);//Spectrum Display
	ADD_MEMBER(unsigned int,SPE_Scale);//Frequency scale
	ADD_MEMBER(unsigned int,SPE_FREDisplay);//Freqeuncy display
	ADD_MEMBER(double,SPE_Gain);
	ADD_MEMBER(double,SPE_Step);
	ADD_MEMBER(unsigned int,SPE_Percentage);
	ADD_MEMBER(DWORD,SPE_BGColor);
//Defining variables in "Spectrum->View" section

	ADD_MEMBER(unsigned int,FFT_ANAPoint);//Analysis points
	ADD_MEMBER(unsigned int,FFT_ANAWindow);//Analysis Window
	ADD_MEMBER(unsigned int,FFT_Interval);//Sequential Block Interval
//Defining variables in "FFT Analysis->FFT" section

	ADD_MEMBER(DWORD,FFT_Delta_Color);
	ADD_MEMBER(double,FFT_Delta_Low);
	ADD_MEMBER(double,FFT_Delta_High);

	ADD_MEMBER(DWORD,FFT_Theta_Color);
	ADD_MEMBER(double,FFT_Theta_Low);
	ADD_MEMBER(double,FFT_Theta_High);

	ADD_MEMBER(DWORD,FFT_Alpha1_Color);
	ADD_MEMBER(double,FFT_Alpha1_Low);
	ADD_MEMBER(double,FFT_Alpha1_High);

	ADD_MEMBER(DWORD,FFT_Alpha2_Color);
	ADD_MEMBER(double,FFT_Alpha2_Low);
	ADD_MEMBER(double,FFT_Alpha2_High);

	ADD_MEMBER(DWORD,FFT_Beta1_Color);
	ADD_MEMBER(double,FFT_Beta1_Low);
	ADD_MEMBER(double,FFT_Beta1_High);

	ADD_MEMBER(DWORD,FFT_Beta2_Color);
	ADD_MEMBER(double,FFT_Beta2_Low);
	ADD_MEMBER(double,FFT_Beta2_High);
//Defining variables in "FFT Analysis->Frequency Band" section

};

#endif